home *** CD-ROM | disk | FTP | other *** search
/ Software Vault: The Gold Collection / Software Vault - The Gold Collection (American Databankers) (1993).ISO / cdr11 / pdox693.zip / TI527.ASC < prev    next >
Text File  |  1992-08-12  |  27KB  |  793 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.   PRODUCT  :  Paradox                                NUMBER  :  527
  9.   VERSION  :  3.0
  10.        OS  :  DOS
  11.      DATE  :  August 12, 1992                         PAGE  :  1/12
  12.  
  13.     TITLE  :  Performance Notes for Paradox 3.0 Reviewers
  14.  
  15.  
  16.  
  17.  
  18.   Paradox provides an environment in which even a relatively
  19.   inexperienced database user can work quickly and productively.
  20.   Part of its power comes from the fact that it hides unnecessary
  21.   detail from the user.  As Paradox is executing an interactive
  22.   command from the user, it may also be building tables that allow
  23.   major changes to be undone, updating the display or environment
  24.   as appropriate, managing memory, checking the integrity of
  25.   tables, or ensuring that consistency is maintained between a
  26.   table and its forms and reports.  The extra services Paradox
  27.   performs as a part of many operations, allow the user to
  28.   concentrate more on the work to be done than on the steps needed
  29.   to get there.  This makes Paradox easier to learn and use, but no
  30.   less powerful; in fact, Paradox's unobtrusive assistance makes it
  31.   more powerful for many users than competitive products.
  32.  
  33.   Consider a menu selection that makes a given record number the
  34.   current record.  Even for such a simple operation, Paradox does
  35.   more than it is asked to do; It also refreshes the display to
  36.   show the new current record (in context in its table, if the user
  37.   is in "table view").  This is a task that might require a second
  38.   command in another database product.  The effect of anticipating
  39.   the user's likely next request and performing it automatically is
  40.   to maintain the continuity of the session, allowing the user to
  41.   accomplish more work with less effort.
  42.  
  43.   When reviewing Paradox 3.0's performance, it is important to take
  44.   into account that a Paradox command may do more work and deliver
  45.   more benefits than are obvious at first.  In this paper, we
  46.   provide a narrative on the many ways that Paradox provides extra
  47.   support behind the scenes, along with tips on specific ways to
  48.   measure performance without inadvertently including the extra
  49.   support as well.  We have tried to organize the discussion by
  50.   functional areas, but some topics cut across several areas.  In
  51.   particular, benchmark results for almost every operation are
  52.   affected by Paradox's virtual memory management, so we discuss
  53.   this topic first.
  54.  
  55.  
  56.   Memory Management
  57.  
  58.   Paradox's virtual memory manager makes good use of as much memory
  59.   as is available, both to hold recently-used blocks of data in
  60.   memory and to store PAL procedures.  Consequently, timing results
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.  
  71.  
  72.  
  73.  
  74.   PRODUCT  :  Paradox                                NUMBER  :  527
  75.   VERSION  :  3.0
  76.        OS  :  DOS
  77.      DATE  :  August 12, 1992                         PAGE  :  2/12
  78.  
  79.     TITLE  :  Performance Notes for Paradox 3.0 Reviewers
  80.  
  81.  
  82.  
  83.  
  84.   are sensitive to the amount of memory available, relative to the
  85.   size of the tables used.  When tables are fairly small and there
  86.   is ample memory, many operations will find most or all of the
  87.   data they need already in memory, and will run quickly.  Paradox
  88.   2.0 can also use expanded memory -- either LIM 3.2 EMS or EEMS --
  89.   and Paradox 3.0 adds support for LIM 4.0 EMS.
  90.  
  91.   One of the benefits of Paradox's memory management is that the
  92.   second and later accesses to a record are usually much faster
  93.   than the first.  This is an advantage in everyday use that may
  94.   not show up in benchmark tests, which often start from a clean
  95.   state or do sequential operations on large files.  In general
  96.   use, many operations do access the same fairly small group of
  97.   records that previous operations have loaded into memory.
  98.   Paradox can be expected to perform well in these cases.
  99.  
  100.   Especially in Paradox 386 and Paradox OS/2, you should tune both
  101.   the amount of memory taken and its distribution between storage
  102.   of recently-used blocks of data, and storage of PAL procedures
  103.   according to your application's needs.  Because these products
  104.   offer address spaces far larger than DOS's one megabyte, the
  105.   amount of memory available to Paradox at start-up can vary
  106.   widely.  This gives you more leeway:  if you are running a very
  107.   complex application, you should favor procedure storage space; if
  108.   you are managing very large tables, you should favor space for
  109.   data blocks.  Note that Paradox OS/2 cannot tell how much
  110.   physical memory is available, so it takes relatively little
  111.   memory by default, on the assumption that you will be running
  112.   several other sessions as well.  Knowing how much memory is
  113.   available and how many sessions you are likely to run, you can
  114.   apportion memory for better performance.
  115.  
  116.  
  117.   Memory Management Benchmarking Tips
  118.  
  119.       *  Virtual memory
  120.  
  121.          Remember that tests that start with memory clear do not
  122.          let Paradox's memory management work to best advantage.
  123.          Some tests should reflect the fact that in everyday work,
  124.          it is common to repeatedly use the same small set of data.
  125.  
  126.  
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.  
  137.  
  138.  
  139.  
  140.   PRODUCT  :  Paradox                                NUMBER  :  527
  141.   VERSION  :  3.0
  142.        OS  :  DOS
  143.      DATE  :  August 12, 1992                         PAGE  :  3/12
  144.  
  145.     TITLE  :  Performance Notes for Paradox 3.0 Reviewers
  146.  
  147.  
  148.  
  149.  
  150.       *  EMS
  151.          Use expanded memory, preferably expanded memory following
  152.          the LIM 4.0 or AST EEMS spec., if possible.
  153.  
  154.       *  Paradox 386 and Paradox OS/2
  155.  
  156.          If using Paradox 386 or Paradox OS/2, match your command
  157.          line options to your environment and to the kind of work
  158.          you will be doing in Paradox.
  159.  
  160.       *  Queries
  161.  
  162.          Paradox's Query-by-Example facility provides many examples
  163.          of extra services that are provided without explicit
  164.          request from the user.  Probably the most fundamental is
  165.          its handling of duplicate records.  Queries often yield
  166.          duplicates, even when based on keyed tables, and usually
  167.          you do not want duplicates in the answer.  Paradox was
  168.          designed with the idea that query results, in addition to
  169.          being correct, should be presented in an easy and usable
  170.          format.  Accordingly, Paradox suppresses duplicate records
  171.          in the ANSWER table by default and, in the course of doing
  172.          so, provides another service:  it sorts the ANSWER table.
  173.          (You can use CheckPlus instead of Check in the query
  174.          statement to omit the sort and retain duplicates, if
  175.          desired.)  In Paradox 3.0, you can select the sort fields
  176.          and choose ascending or descending sort for each, making a
  177.          subsequent sort step unnecessary.
  178.  
  179.          FIND queries also provide more support for the user than
  180.          is evident initially.  When a FIND query is performed, the
  181.          only outward consequence is that the cursor is positioned
  182.          to the first record that satisfies the query.  However,
  183.          Paradox also builds an ANSWER table containing all records
  184.          that match the selection criteria, making it easy to
  185.          locate the desired record even if it is not the first
  186.          match.  If you know you do not want to see any record but
  187.          the first match, it is faster to use Image/Zoom/Record
  188.          instead (and note that here too Paradox positions to the
  189.          desired record, so you can see it in context).
  190.  
  191.          One final example:  Whenever a query changes a table,
  192.          Paradox keeps a log of the affected records in the
  193.  
  194.  
  195.  
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202.  
  203.  
  204.  
  205.  
  206.   PRODUCT  :  Paradox                                NUMBER  :  527
  207.   VERSION  :  3.0
  208.        OS  :  DOS
  209.      DATE  :  August 12, 1992                         PAGE  :  4/12
  210.  
  211.     TITLE  :  Performance Notes for Paradox 3.0 Reviewers
  212.  
  213.  
  214.  
  215.  
  216.          CHANGED, INSERTED, or DELETED table (depending on the type
  217.          of query).  In the event of a mistake, the entire
  218.          operation can quickly be undone using this log table.  As
  219.          a result, it is safe to make complex changes to a table
  220.          without writing procedural code and without exhaustive
  221.          testing -- if you make the wrong changes, you can always
  222.          reverse them and redo the operation correctly.  Overall
  223.          productivity is improved as a result.
  224.  
  225.   Query Benchmarking Tips
  226.  
  227.       *  Duplicates
  228.  
  229.          If a query will not select duplicates -- for instance, if
  230.          the table's key field(s) are selected -- use CheckPlus to
  231.          prevent sorting.
  232.  
  233.       *  Finding just one record
  234.  
  235.          Use Image/Zoom/Record or the PAL LOCATE command to find a
  236.          single record in a table.
  237.  
  238.       *  Controlling the ANSWER table's layout
  239.  
  240.          Use query capabilities such as column rotation,
  241.          CheckDescending, and the AS operator, to give the ANSWER
  242.          table the desired layout.  This can eliminate a subsequent
  243.          sort or restructure step.
  244.  
  245.       *  Indexes
  246.  
  247.          Although Paradox queries always give the same results
  248.          whether the queried tables are indexed or not, they
  249.          sometimes run much faster when appropriate indexes do
  250.          exist.  We turn to this topic next.
  251.  
  252.          Paradox offers a variety of indexing alternatives.  First,
  253.          you may chose to define a primary key for a table (in
  254.          which case it is sorted and no two records may have the
  255.          same key values) or you may leave the table unkeyed (in
  256.          which case it is not ordered and duplicate records are
  257.          allowed).  Second, you may create a secondary index for
  258.          any field in a table, whether it has a primary key or not.
  259.  
  260.  
  261.  
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268.  
  269.  
  270.  
  271.  
  272.   PRODUCT  :  Paradox                                NUMBER  :  527
  273.   VERSION  :  3.0
  274.        OS  :  DOS
  275.      DATE  :  August 12, 1992                         PAGE  :  5/12
  276.  
  277.     TITLE  :  Performance Notes for Paradox 3.0 Reviewers
  278.  
  279.  
  280.  
  281.  
  282.          Finally, you may chose to rebuild a table's secondary
  283.          indexes whenever the table is changed (for indexed tables
  284.          only) or only when the table is queried.  No matter what
  285.          kind of data a table contains or how it is queried and
  286.          updated, one of these alternatives will be suitable.
  287.  
  288.          A table that will be queried should generally have a
  289.          primary index, since this will speed up searches on key
  290.          values.  Non-key fields that are often the basis of
  291.          selection criteria will benefit from having secondary
  292.          indexes.  You will notice that it is not even necessary to
  293.          tell Paradox which fields to create secondary indexes for;
  294.          just ask for QuerySpeedup on the most common queries, and
  295.          Paradox will decide where indexes are most needed.  This
  296.          is a prime example of Paradox's ability to increase rather
  297.          than limit users' choices by hiding detail.  For most
  298.          applications, it is better to request maintained secondary
  299.          indexes (these are selected in the Custom Configuration
  300.          Program, or by using the MAINTAINED option of the INDEX
  301.          command).  There are exceptions, however; for instance, a
  302.          large table that is only updated overnight and is queried
  303.          heavily during the day is a good candidate for non-
  304.          maintained secondary indexes.
  305.  
  306.  
  307.   Index Benchmarking Tips
  308.  
  309.       *  Building an index
  310.  
  311.          As we will see below, Modify/Restructure can create a
  312.          primary index, but does too much additional work to give
  313.          you an accurate measure of indexing time.  To see how
  314.          quickly Paradox builds an index, use PAL's INDEX command,
  315.          which builds a secondary index on a specified field.
  316.  
  317.       *  Using an index
  318.  
  319.          When you want to measure query performance using an index,
  320.          on the other hand, it is important that you do not
  321.          inadvertently include the time taken to rebuild the index.
  322.          You will want to use maintained indexes here.
  323.  
  324.  
  325.  
  326.  
  327.  
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334.  
  335.  
  336.  
  337.  
  338.   PRODUCT  :  Paradox                                NUMBER  :  527
  339.   VERSION  :  3.0
  340.        OS  :  DOS
  341.      DATE  :  August 12, 1992                         PAGE  :  6/12
  342.  
  343.     TITLE  :  Performance Notes for Paradox 3.0 Reviewers
  344.  
  345.  
  346.  
  347.  
  348.       *  Changing a Table's Structure
  349.  
  350.          Another area in which Paradox provides more support than
  351.          is evident at first glance is Modify/Restructure.  From
  352.          the user's point of view, Restructure allows changing a
  353.          table's primary key, adding, deleting, or reordering
  354.          fields, or changing field names and lengths.  In the
  355.          course of making these changes, Restructure does three
  356.          other important kinds of work behind the scenes:
  357.  
  358.              o  Unless requested not to, Restructure builds a
  359.                 PROBLEMS table containing any records in which data
  360.                 would be lost or truncated as a result of changes
  361.                 to field types or lengths.  Like other temporary
  362.                 tables, PROBLEMS is presented to the user in sorted
  363.                 order.
  364.  
  365.              o  It also removes references to deleted fields from
  366.                 forms, reports, image settings, and validity
  367.                 checks.  Users have as much flexibility as possible
  368.                 to change existing tables without losing the forms
  369.                 and reports they have defined for them, yet are
  370.                 guaranteed that these forms and reports are
  371.                 consistent with the new table structure.  [expand:
  372.                 users have object-oriented view -- field either
  373.                 exists or it doesn't -- and this gives flexibility,
  374.                 integrity, and simplicity]
  375.  
  376.              o  Finally, Restructure always rebuilds a table
  377.                 completely: it brings records back into physical
  378.                 sequence, consolidates partly-full blocks of data,
  379.                 returns the space freed by this rebuilding to DOS,
  380.                 and rebuilds primary and secondary indexes.
  381.                 Clearly it is not appropriate to compare Paradox's
  382.                 time to change a field's type, for instance, to
  383.                 another product's time for the same change, unless
  384.                 the other product also provides the same
  385.                 integrity-checking and table-rebuilding
  386.                 capabilities.
  387.  
  388.  
  389.  
  390.  
  391.  
  392.  
  393.  
  394.  
  395.  
  396.  
  397.  
  398.  
  399.  
  400.  
  401.  
  402.  
  403.  
  404.   PRODUCT  :  Paradox                                NUMBER  :  527
  405.   VERSION  :  3.0
  406.        OS  :  DOS
  407.      DATE  :  August 12, 1992                         PAGE  :  7/12
  408.  
  409.     TITLE  :  Performance Notes for Paradox 3.0 Reviewers
  410.  
  411.  
  412.  
  413.  
  414.   Restructure Benchmarking Tips
  415.  
  416.       *  Changing table structure
  417.  
  418.          You cannot get a time for a simple table change (delete a
  419.          field, change a field's data type, add a primary index,
  420.          etc.) that does not include the additional work discussed
  421.          above.  Since these operations are not done frequently
  422.          once a table contains data and is being used regularly,
  423.          Paradox's design favors thoroughness and data integrity
  424.          over speedy execution, in this case.
  425.  
  426.       *  Compacting a table
  427.  
  428.          You can force Paradox to rebuild a table as described
  429.          above by entering the Restructure subsystem and pressing
  430.          Do_It! without making any changes.  If the table contains
  431.          many deleted records, this will compact it and, thus,
  432.          speed up operations that use it.  Many Paradox users
  433.          regularly restructure their tables for just this reason,
  434.          and it may be appropriate to do so when benchmarking as
  435.          well.
  436.  
  437.       *  Building an index
  438.  
  439.          As we have seen, the PAL command INDEX, which builds or
  440.          rebuilds a secondary index on the field you select, gives
  441.          the best measure of indexing time.
  442.  
  443.       *  Renaming fields in ANSWER
  444.  
  445.          Use the AS operator in a query to rename fields in the
  446.          ANSWER table.  This is especially useful for CALC queries
  447.          or when two tables in the query have fields with the same
  448.          name.
  449.  
  450.       *  Import/Export and Reporting
  451.  
  452.          Sometimes Paradox provides several ways to perform the
  453.          same general operation, each with its own options and
  454.          advantages.  Which alternative you choose will depend on
  455.          your specific circumstances and objectives.  When optimum
  456.          performance is the objective, it is especially important
  457.  
  458.  
  459.  
  460.  
  461.  
  462.  
  463.  
  464.  
  465.  
  466.  
  467.  
  468.  
  469.  
  470.   PRODUCT  :  Paradox                                NUMBER  :  527
  471.   VERSION  :  3.0
  472.        OS  :  DOS
  473.      DATE  :  August 12, 1992                         PAGE  :  8/12
  474.  
  475.     TITLE  :  Performance Notes for Paradox 3.0 Reviewers
  476.  
  477.  
  478.  
  479.  
  480.          to select the alternative that best satisfies your needs.
  481.          We will look at two examples, one that involves inputting
  482.          data into Paradox, and one that involves report output.
  483.  
  484.          Paradox imports data in more formats than most other
  485.          database products, and can in every case determine the
  486.          structure of the target table without the user's
  487.          involvement.  When importing data in a well-defined
  488.          format, such as DIF, this is straightforward.  For other
  489.          formats, such as 1-2-3 spreadsheets and comma-delimited
  490.          ASCII files, Paradox must pass through the file to be
  491.          imported twice, once to select data types and once to
  492.          import the data.  This is slow, but gives the best
  493.          possible support for interactive use.  In an application,
  494.          if the format of the incoming data is known and the data
  495.          is clean, you can instead use
  496.          Ascii/Import/AppendDelimited.  In this case, you provide
  497.          the target table, and Paradox only makes one pass through
  498.          the data, building a PROBLEMS table if any input records
  499.          do not have the necessary structure.
  500.  
  501.          Users often want to borrow reports from an existing table
  502.          for a newly-created table, most often to associate an
  503.          already-defined report with a new ANSWER table.  In
  504.          Paradox 2.0, Copy/JustFamily is usually the best tool to
  505.          associate forms or reports with a table; to empty the
  506.          target table and add records into it is slower.  In
  507.          Paradox 3.0, an individual form or report may be copied
  508.          from one table to another.
  509.  
  510.  
  511.   Import/Export and Report Benchmarking Tips
  512.  
  513.       *  Joining tables
  514.  
  515.          In Paradox 3.0, you can use external tables in a report
  516.          specification to satisfy most requests for reports that
  517.          draw data from several tables.  Only the most complex
  518.          reports require a query step to assemble the data before
  519.          reporting.
  520.  
  521.  
  522.  
  523.  
  524.  
  525.  
  526.  
  527.  
  528.  
  529.  
  530.  
  531.  
  532.  
  533.  
  534.  
  535.  
  536.   PRODUCT  :  Paradox                                NUMBER  :  527
  537.   VERSION  :  3.0
  538.        OS  :  DOS
  539.      DATE  :  August 12, 1992                         PAGE  :  9/12
  540.  
  541.     TITLE  :  Performance Notes for Paradox 3.0 Reviewers
  542.  
  543.  
  544.  
  545.  
  546.       *  Sorting
  547.  
  548.          Grouping in a report implies sorting; there is no need to
  549.          sort a table before reporting on it.
  550.  
  551.       *  Copying reports to an ANSWER table
  552.  
  553.          In general, copying a single report from one table to
  554.          another is the fastest way to use an existing report with
  555.          a new ANSWER table.
  556.  
  557.       *  Ascii Import
  558.  
  559.          For fast import into an ASCII table, define the target
  560.          table ahead of time and use the AppendDelimited option to
  561.          fill it.
  562.  
  563.       *  PAL
  564.  
  565.          A program in Paradox's programming language, PAL, can be
  566.          as simple as a small macro or a few recorded keystrokes.
  567.          At the other extreme, PAL provides many features of
  568.          contemporary programming languages, such as arrays, DO and
  569.          FOR statements, procedures with arguments and private
  570.          variables, and many functions for testing system status.
  571.          Using these features, developers can write complex and
  572.          sophisticated Paradox applications.
  573.  
  574.          It is possible to write a PAL application without using
  575.          procedures.  However, programs that use procedures, beside
  576.          being cleaner and easier to debug, usually run faster.
  577.          Once an application is completed, it is generally
  578.          desirable to store its procedures in procedure libraries.
  579.          Procedures from libraries usually run faster than those in
  580.          scripts (as PAL programs are often called), especially in
  581.          large applications, because libraries allow procedure
  582.          swapping.
  583.  
  584.  
  585.  
  586.  
  587.  
  588.  
  589.  
  590.  
  591.  
  592.  
  593.  
  594.  
  595.  
  596.  
  597.  
  598.  
  599.  
  600.  
  601.  
  602.   PRODUCT  :  Paradox                                NUMBER  :  527
  603.   VERSION  :  3.0
  604.        OS  :  DOS
  605.      DATE  :  August 12, 1992                        PAGE  :  10/12
  606.  
  607.     TITLE  :  Performance Notes for Paradox 3.0 Reviewers
  608.  
  609.  
  610.  
  611.  
  612.   PAL Benchmarking Tips
  613.  
  614.       *  Procedures
  615.  
  616.          Keep PAL procedures fairly small, store them in procedure
  617.          libraries and use procedure calls that allow swapping, and
  618.          let Paradox manage loading and releasing of procedures.
  619.  
  620.       *  Network Topics
  621.  
  622.          Paradox's support for local-area networks is a natural
  623.          extension of its single-user feature set.  One of its main
  624.          objectives is to allow concurrent operation wherever
  625.          possible.  Many users can read a table -- for the purpose
  626.          of viewing it, querying it, reporting from it, or graphing
  627.          it -- simultaneously.  Although only one user can edit a
  628.          table at a time, a second update mode, CoEdit, is provided
  629.          to allow several users to change a table's contents
  630.          concurrently.  In CoEdit, users lock only the records they
  631.          are changing; other users are prevented from trying to
  632.          change a record as long as it is locked, but may lock and
  633.          change any other records.  Still, other users may view,
  634.          query, or report from the table while it is being
  635.          coedited.
  636.  
  637.          Paradox never allows concurrent access that would put the
  638.          integrity of the data at risk, however.  To prevent such
  639.          access, it places locks on resources -- tables, forms,
  640.          reports, and other Paradox objects -- that are in use.
  641.          Other users may or may not be allowed to share these
  642.          resources, depending on what type of lock is in force and
  643.          what type of locks they require for the operations they
  644.          want to perform.
  645.  
  646.          Here again, we see how unobtrusively Paradox works to
  647.          allow you to concentrate on the work to be done and not on
  648.          the mechanics of getting it done.  While you continue to
  649.          work as you would on a single-user installation, Paradox
  650.          ensures that needed resources are available and locks them
  651.          to prevent inappropriate concurrent use by others.  You
  652.          never have to inquire if a table or record is locked
  653.          before you try to use it, and you are never penalized if
  654.          you fail to check what other users are doing before you
  655.  
  656.  
  657.  
  658.  
  659.  
  660.  
  661.  
  662.  
  663.  
  664.  
  665.  
  666.  
  667.  
  668.   PRODUCT  :  Paradox                                NUMBER  :  527
  669.   VERSION  :  3.0
  670.        OS  :  DOS
  671.      DATE  :  August 12, 1992                        PAGE  :  11/12
  672.  
  673.     TITLE  :  Performance Notes for Paradox 3.0 Reviewers
  674.  
  675.  
  676.  
  677.  
  678.          begin your work.  As long as there is no conflict, you do
  679.          not need to pay attention to what other users on the
  680.          network are doing -- and as soon as there is a conflict,
  681.          Paradox tells you.  Moreover, Paradox does not just tell
  682.          you that a resource is unavailable; it also tells who is
  683.          using the resource you need.
  684.  
  685.          You can, however, ask Paradox to keep you posted on
  686.          changes other users are making to the tables you are
  687.          viewing or using.  By adjusting the AutoRefresh interval,
  688.          you can have their work reflected on your screen almost
  689.          instantly, so you will always know as you begin updating a
  690.          record that the values you are looking at are completely
  691.          up-to-date.  Or you can turn off AutoRefresh.  In either
  692.          case, Paradox informs you of changes you need to know
  693.          about -- for example, if you attempt to lock a record when
  694.          your display of it is out-of-date, Paradox will update
  695.          your display before it lets you begin entering your
  696.          changes.
  697.  
  698.  
  699.   Network Benchmarking Tips
  700.  
  701.       *  Locking
  702.  
  703.          In addition to the implicit locking discussed above, it is
  704.          also possible to lock tables explicitly through PAL.  In
  705.          an application, it is better to lock explicitly and test
  706.          that the lock succeeded.
  707.  
  708.       *  Using CoEdit
  709.  
  710.          CoEdit in a shared directory that gives maximum
  711.          concurrence, but the additional overhead of record-locking
  712.          inevitably causes some performance degradation.  Edit
  713.          gives better performance.  CoEdit with exclusive use of a
  714.          directory can be faster than Edit, because it can omit
  715.          both the record-locking and the transaction log that Edit
  716.          maintains.
  717.  
  718.  
  719.  
  720.  
  721.  
  722.  
  723.  
  724.  
  725.  
  726.  
  727.  
  728.  
  729.  
  730.  
  731.  
  732.  
  733.  
  734.   PRODUCT  :  Paradox                                NUMBER  :  527
  735.   VERSION  :  3.0
  736.        OS  :  DOS
  737.      DATE  :  August 12, 1992                        PAGE  :  12/12
  738.  
  739.     TITLE  :  Performance Notes for Paradox 3.0 Reviewers
  740.  
  741.  
  742.  
  743.  
  744.       *  Improving network performance
  745.  
  746.          Our default time of three seconds for AutoRefresh assumes
  747.          a fairly powerful network, and gives up a fraction of its
  748.          resources in order to keep all users up-to-date.  For a
  749.          heavily-loaded network, you may want to set the
  750.          AutoRefresh interval higher, to work in forms view instead
  751.          of table view, or to use DataEntry instead of CoEdit.  Any
  752.          of these will decrease network traffic.
  753.  
  754.   DISCLAIMER: You have the right to use this technical information
  755.   subject to the terms of the No-Nonsense License Statement that
  756.   you received with the Borland product to which this information
  757.   pertains.
  758.  
  759.  
  760.  
  761.  
  762.  
  763.  
  764.  
  765.  
  766.  
  767.  
  768.  
  769.  
  770.  
  771.  
  772.  
  773.  
  774.  
  775.  
  776.  
  777.  
  778.  
  779.  
  780.  
  781.  
  782.  
  783.  
  784.  
  785.  
  786.  
  787.  
  788.  
  789.  
  790.  
  791.  
  792.  
  793.